<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 实例成员和静态成员

    /* // 1.实例成员：
    实例对象上的属性和方法属于实例成员
    // 通过构造函数创建的对象称为实例对象，实例对象中的 属性 和 方法 称为 实例成员（实例属性和实例方法）
    // 说明：
    // 1.为构造函数传入参数，创建结构相同但值不同的对象
    // 2.构造函数创建的实例对象彼此独立互不影响
    function Pig(name) {
      this.name = name
    }
    const peiqi = new Pig('佩奇')
    const qiaozhi = new Pig('乔治')
    peiqi.name = '小猪佩奇'  // 实例属性
    peiqi.sayHi = () => {   // 实例方法
      console.log('hi~~')
    }
    peiqi.sayHi()
    console.log(peiqi)
    console.log(qiaozhi)
    console.log(peiqi === qiaozhi)  // false */


    // 2.静态成员:
    // 构造函数的属性和方法被称为静态成员 (静态属性和静态方法)
    // 说明:
    // 1.静态成员只能构造函数来访问
    // 2.静态方法中的this指向构造函数 (因为是构造函数来调用它)
    // 比如  Date.now()  Math.PI  Math.random()
    function Pig(name) {
      this.name = name
    }
    Pig.eyes = 2  // 静态属性 
    Pig.sayHi = function () {   // 静态方法
      console.log(this)
    }
    Pig.sayHi()   // this指向Pig(调用者)
    console.log(Pig.eyes)  // 2
  </script>
</body>

</html>